package com.itheima.demo;

import com.itheima.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DemoTest {
    public static void main(String[] args) {
        //1.读取spring核心配置文件,创建spring ioc容器
        /*
        * ApplicationContext常用的已知实现类
        * AnnotationConfigApplicationContext:注解配置类
        * ClassPathXmlApplicationContext:源路径下XML核心配置文件
        * FileSystemXmlApplicationContext:指定盘符下XML核心配置文件(不建议)
        * */
        //销毁不能通过ApplicationContext调用,必须用ClassPathXmlApplicationContext调用
        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");

        //2.从容器中获取对象
        /*//获取Bean对象方式三种
        //1.通过字节码类型
        要求IOC容器中有且只有一个Bean对象类型
        2.通过存入名称id
        强制类型转换
        3.id和字节码类型结合使用*/

        //User u = ac.getBean(User.class)
        User u = ac.getBean("u",User.class);
        //User u = ac.getBean("u",User.class);
        System.out.println(u);
        ac.destroy();
    }
}
